#ifndef ITERADORLISTAIMP_H
#define ITERADORLISTAIMP_H
template <class T>
class ListaImp;
#include "Iterador.h"
#include "Puntero.h"

template <class T>
class NodoLista;
template<class T>
class IteradorListaImp :public Iterador<T>
{
public:
     IteradorListaImp(const ListaImp<T> &l);
	 IteradorListaImp(const Puntero<ListaImp<T>> &l);
	 Puntero<ListaImp<T>> lista;
	 virtual ~IteradorListaImp(void);
	 virtual void Reiniciar() ;
	 virtual bool HayElemento() const ;
	 virtual T& ElementoActual()const ;
	 virtual void Avanzar();
		NodoLista<T> *actual;
		NodoLista<T> *ppio;
};
#include "IteradorListaImp.cpp"
#endif